// compile:
// run:
// C++ 11 新引入操作符alignof， 对齐描述符alignas，
// 基本对齐值 alignof(std::max_align_t)
// alignas可以接受常量表达式和类型作为参数，可以修饰变量、类的数据成员等，不能修饰位域和用register申明的变量。一般往大对齐。

// 其中alignof可以计算出类型的对齐方式，alignas可以指定结构体的对齐方式。
#include <iostream>
// #pragma pack(2)
using namespace std;
struct alignas(2) Test {
  int a;
  char b;
  double c;
  char d[10];
};

void Test1() {
  cout << sizeof(Test) << endl;
  cout << alignof(int) << endl;
  cout << alignof(Test) << endl;
}
void Test2() {}
int main() {
  Test1();
  Test2();
  return 0;
}
// https://www.iamshuaidi.com/2392.html
